win10编译opencv4.5.1+opencv | 您所在的位置:网站首页 › cmake opencv4 › win10编译opencv4.5.1+opencv |
前言:2020年12月,opencv 4.5.1版本发布,新版本更新了很多内容,比如:SIFT算法优化,新增BEBLID局部描述子等等。具体升级情况可移步opencv进行查看。由于最近在做一些图像匹配相关的工作,正好测试一下4.5.1版本的新功能。期间踩了一些坑,记录一下让大家尽量避开。 1 准备工作 Windows10系统 Visual Studio 2019:Visual Studio Community 2019 Cmake:cmake-3.20.0-rc3-windows-x86_64.msi OpenCV 4.51:opencv-4.5.1.tar.gz OpenCV_contrib 4.5.1:opencv_contrib-4.5.1.tar.gz 有的朋友找不到opencv的资源,其实很简单,直接在github搜opencv,选第一个opencv/opencv。然后看见以下仓库,就是opencv和opencv_contrib了。 选择红框的opencv,点tags,opencv的所有发行版本都出来了。opencv_contrib同理。 CUDA工具包:快捷键win+r,输入cmd,输入命令行nvidia-smi,找到对应的CUDA版本。我这里是11.0,CUDA Toolkit 11.0。把https://developer.nvidia.com/改成https://developer.nvidia.cn/NVIDIA DeveloperCUDA工具包:快捷键win+r,输入cmd,输入命令行nvidia-smi,找到对应的CUDA版本。我这里是11.0,CUDA Toolkit 11.0。 记得把https://developer.nvidia.com/改成https://developer.nvidia.cn/,你会发现打开Nivida官网如此简单! cudnn:和CUDA11.0搭配的cudnn版本是cudnn 8.0.5,需要在Nivdia注册登录才能下载。 2 安装 2.1 安装Visual Studio 2019 有一个需要注意的,一定不要删除安装过程中的任何文件夹。我之前删除了一个存放下载文件的文件夹(安装过程中,我选择了安装完删除的,但是安装完发现还有十几M文件),删了以后发现系统检测不到我安装VS2019了,cmake检测不到编译器,虽然点图标依然能用VS。没办法,只能把从Visual Studio installer那里重新安装一次。 2.2 CUDA+cudnn 官方安装教程 CUDA:CUDA Toolkit Documentation cuDNN:NVIDIA Deep Learning cuDNN Documentation 其实根本不用看教程,就是双击cuda.exe安装精简版,然后解压cudnn,把解压文件复制到cuda安装文件夹C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0 教程里说要添加环境变量之类的,其实不用,因为安装cudu.exe的时候已经添加完成了。 测试是否安装成功: i. win+r输入cmd,控制台输入nvcc -V ii. 控制台输入cd C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\extras\demo_suite 再输入bandwidthTest.exe,显示Result = PASS 输入deviceQuery.exe,同样显示Result = PASS,那就是OK了! 2.3 cmake编译opencv 2.3.1 安装cmake 双击cmake.exe就行了,安装过程中选择添加到系统环境变量。 2.3.2 编译 将下载好的opencv 4.5.1和opencv_contrib 4.5.1解压,放到一个文件夹里面(opencv451),再到opencv451文件夹新建build文件夹. 在cmake里添加opencv4.5.1文件夹和build文件夹 第一次点configure,默认的选择就好了。如果你需要在其他平台跑,就在第二个框选择你的平台,默认行x64. 点击Finish,第二次点击configure,开始编译了,现在等待ing 因为有的文件是需要搭梯子的,比如ippicv,有条件的朋友自行解决,没有的我会把.cache文件夹打包(有这个就不用下载了). configure done后,在search框内输入cuda,三个全部将value打勾。 search框搜MODULES,在OPENCV_EXTRA_MODULES_RATH一项,添加opencv_contrib4.5.1中的modules目录 search框搜NON,把OPENCV_ENABLE_NONFREE 的value打勾。 search框搜world,将build_opencv_world的value打勾,将所有opencv的库都编译在一起不需要自己一一添加每个小模块。 如果你的电脑配置一般,我建议你找到列表中的“BUILD_TESTS”,“BUILD_PERF_TESTS”,“BUILD_EXAMPLES”,把勾去掉,可以缩短最后生成解决方案的时间。电脑还可以的朋友建议保留。 第三次点击configure,再次等待,会出现Configuring done 再次搜索框输入cuda,CUDA_ARCH_BIN中将显卡的算力内容改成自己显卡的算力,我将小于7的都删除了。 查看显卡算力网址:https://developer.nvidia.com/cuda-gpus 第四次点击confige,这次的Configuring done终于OK,然后点击Generate,稍等片刻出现Generating done! 然后点击Open Project,它会启动你的Visual Studio 很多兄弟不会搭梯子,所以cmake的东西下不下来,这个专门把.cache文件夹 给放网盘了。不限速的网盘!!!点个赞再走吧。本链接2021/6/10更新 密码:7beq 由于上传限制,分成了1和2两个压缩包,记得下载下来以后统一放到.cache里面。 2.4 Visual Studio编译+配置 2.4.1 编译生成opencv i. 使用VS2019打开刚刚编译工程后,会反应一段时间,一定要等待左下角显示的项全部加载完毕才可以继续操作 ii. 选择Release x64,接着找到“CmakeTargets”下的“ALL_BUILD”,右键→“生成”,然后开始漫长的等待…… 等待大概一两个小时吧,期间最好不要让电脑做其他工作,不然可能卡死。 生成成功是这个样子的。一般是不会有error的,如果有请查看详情,是否cmake阶段没搞好。 iii. 解决方案资源管理器—>CMakeTargets—>INSTALL—>生成”然后又是等,好在这次时间很短。完成后你的build文件夹中会出现一个install文件夹,这就是完成了。 2.4.2 配置VS2019+opencv4.5.1 配置阶段其实和直接安装exe文件的过程是一样的,install文件夹就是需要配置的目录。 i. 环境变量配置 右键电脑【属性】—【高级系统设置】—【环境变量】—【系统变量】—【Path】 将编译目录“ D:\opencv451\build\install\x64\vc15\bin”的完整路径添加到【Path】 ,具体路径根据你自己Cmake时的路径进行修改。 环境变量配置好后,重启系统。 ii. 属性管理器配置 打开vs2019-新建-空项目,把Debug的X86改成release X64 【视图】—【其他窗口】—【属性管理器】 Release|x64右键添加新项目属性表,新建属性表,以后其他的项目把它复制到你的项目,直接添加属性表就可以用了。注意,最好属性表命名为opencv451,以后有其他版本好区分。 双击打开刚才建好的属性表opencv451,点击VC++目录 包含目录:D:\setup\opencv451\build\install\include D:\setup\opencv451\build\install\include\opencv2 具体路径根据你的安装目录来 库目录:D:\setup\opencv451\build\install\x64\vc16\lib 【链接器】—【输入】—【附加的依赖项】中添加opencv_world451.lib (如果你生成的是debug版本,那就是添加opencv_world451d.lib) 点确定,大功告成! |
CopyRight 2018-2019 实验室设备网 版权所有 |